<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Cwp\V20180228\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeVulFixStatus response structure.
 *
 * @method string getFixStartTime() Obtain Fixing start time
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setFixStartTime(string $FixStartTime) Set Fixing start time
Note: This field may return null, indicating that no valid values can be obtained.
 * @method string getFixEndTime() Obtain Fixing end time. If this parameter is left blank, fixing is not ended.
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setFixEndTime(string $FixEndTime) Set Fixing end time. If this parameter is left blank, fixing is not ended.
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getFixSuccessCnt() Obtain Number of successfully fixed hosts
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setFixSuccessCnt(integer $FixSuccessCnt) Set Number of successfully fixed hosts
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getFixFailCnt() Obtain Number of hosts failed to be fixed
 * @method void setFixFailCnt(integer $FixFailCnt) Set Number of hosts failed to be fixed
 * @method integer getHostCnt() Obtain Total number of hosts
 * @method void setHostCnt(integer $HostCnt) Set Total number of hosts
 * @method integer getFixId() Obtain Fixing task ID
 * @method void setFixId(integer $FixId) Set Fixing task ID
 * @method array getSnapshotList() Obtain Status list of snapshots to be fixed
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setSnapshotList(array $SnapshotList) Set Status list of snapshots to be fixed
Note: This field may return null, indicating that no valid values can be obtained.
 * @method array getVulFixList() Obtain Details list of vulnerabilities to be fixed
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setVulFixList(array $VulFixList) Set Details list of vulnerabilities to be fixed
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getSnapshotProgress() Obtain Snapshot creation progress (0-100)
 * @method void setSnapshotProgress(integer $SnapshotProgress) Set Snapshot creation progress (0-100)
 * @method integer getFixProgress() Obtain Fixing progress (0-100)
 * @method void setFixProgress(integer $FixProgress) Set Fixing progress (0-100)
 * @method integer getRemainingTime() Obtain Estimated remaining time (seconds)
 * @method void setRemainingTime(integer $RemainingTime) Set Estimated remaining time (seconds)
 * @method integer getIsRetrySnapshot() Obtain Whether the snapshot is retried. 0: no; 1: yes.
 * @method void setIsRetrySnapshot(integer $IsRetrySnapshot) Set Whether the snapshot is retried. 0: no; 1: yes.
 * @method integer getSnapshotFailCnt() Obtain Number of snapshots failed to be created
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setSnapshotFailCnt(integer $SnapshotFailCnt) Set Number of snapshots failed to be created
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getIsAllowRetry() Obtain Whether retry is allowed. 0: not allowed; 1: allowed.Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setIsAllowRetry(integer $IsAllowRetry) Set Whether retry is allowed. 0: not allowed; 1: allowed.Note: This field may return null, indicating that no valid values can be obtained.
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeVulFixStatusResponse extends AbstractModel
{
    /**
     * @var string Fixing start time
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $FixStartTime;

    /**
     * @var string Fixing end time. If this parameter is left blank, fixing is not ended.
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $FixEndTime;

    /**
     * @var integer Number of successfully fixed hosts
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $FixSuccessCnt;

    /**
     * @var integer Number of hosts failed to be fixed
     */
    public $FixFailCnt;

    /**
     * @var integer Total number of hosts
     */
    public $HostCnt;

    /**
     * @var integer Fixing task ID
     */
    public $FixId;

    /**
     * @var array Status list of snapshots to be fixed
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $SnapshotList;

    /**
     * @var array Details list of vulnerabilities to be fixed
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $VulFixList;

    /**
     * @var integer Snapshot creation progress (0-100)
     */
    public $SnapshotProgress;

    /**
     * @var integer Fixing progress (0-100)
     */
    public $FixProgress;

    /**
     * @var integer Estimated remaining time (seconds)
     */
    public $RemainingTime;

    /**
     * @var integer Whether the snapshot is retried. 0: no; 1: yes.
     */
    public $IsRetrySnapshot;

    /**
     * @var integer Number of snapshots failed to be created
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $SnapshotFailCnt;

    /**
     * @var integer Whether retry is allowed. 0: not allowed; 1: allowed.Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $IsAllowRetry;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param string $FixStartTime Fixing start time
Note: This field may return null, indicating that no valid values can be obtained.
     * @param string $FixEndTime Fixing end time. If this parameter is left blank, fixing is not ended.
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $FixSuccessCnt Number of successfully fixed hosts
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $FixFailCnt Number of hosts failed to be fixed
     * @param integer $HostCnt Total number of hosts
     * @param integer $FixId Fixing task ID
     * @param array $SnapshotList Status list of snapshots to be fixed
Note: This field may return null, indicating that no valid values can be obtained.
     * @param array $VulFixList Details list of vulnerabilities to be fixed
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $SnapshotProgress Snapshot creation progress (0-100)
     * @param integer $FixProgress Fixing progress (0-100)
     * @param integer $RemainingTime Estimated remaining time (seconds)
     * @param integer $IsRetrySnapshot Whether the snapshot is retried. 0: no; 1: yes.
     * @param integer $SnapshotFailCnt Number of snapshots failed to be created
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $IsAllowRetry Whether retry is allowed. 0: not allowed; 1: allowed.Note: This field may return null, indicating that no valid values can be obtained.
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("FixStartTime",$param) and $param["FixStartTime"] !== null) {
            $this->FixStartTime = $param["FixStartTime"];
        }

        if (array_key_exists("FixEndTime",$param) and $param["FixEndTime"] !== null) {
            $this->FixEndTime = $param["FixEndTime"];
        }

        if (array_key_exists("FixSuccessCnt",$param) and $param["FixSuccessCnt"] !== null) {
            $this->FixSuccessCnt = $param["FixSuccessCnt"];
        }

        if (array_key_exists("FixFailCnt",$param) and $param["FixFailCnt"] !== null) {
            $this->FixFailCnt = $param["FixFailCnt"];
        }

        if (array_key_exists("HostCnt",$param) and $param["HostCnt"] !== null) {
            $this->HostCnt = $param["HostCnt"];
        }

        if (array_key_exists("FixId",$param) and $param["FixId"] !== null) {
            $this->FixId = $param["FixId"];
        }

        if (array_key_exists("SnapshotList",$param) and $param["SnapshotList"] !== null) {
            $this->SnapshotList = [];
            foreach ($param["SnapshotList"] as $key => $value){
                $obj = new VulFixStatusSnapshotInfo();
                $obj->deserialize($value);
                array_push($this->SnapshotList, $obj);
            }
        }

        if (array_key_exists("VulFixList",$param) and $param["VulFixList"] !== null) {
            $this->VulFixList = [];
            foreach ($param["VulFixList"] as $key => $value){
                $obj = new VulFixStatusInfo();
                $obj->deserialize($value);
                array_push($this->VulFixList, $obj);
            }
        }

        if (array_key_exists("SnapshotProgress",$param) and $param["SnapshotProgress"] !== null) {
            $this->SnapshotProgress = $param["SnapshotProgress"];
        }

        if (array_key_exists("FixProgress",$param) and $param["FixProgress"] !== null) {
            $this->FixProgress = $param["FixProgress"];
        }

        if (array_key_exists("RemainingTime",$param) and $param["RemainingTime"] !== null) {
            $this->RemainingTime = $param["RemainingTime"];
        }

        if (array_key_exists("IsRetrySnapshot",$param) and $param["IsRetrySnapshot"] !== null) {
            $this->IsRetrySnapshot = $param["IsRetrySnapshot"];
        }

        if (array_key_exists("SnapshotFailCnt",$param) and $param["SnapshotFailCnt"] !== null) {
            $this->SnapshotFailCnt = $param["SnapshotFailCnt"];
        }

        if (array_key_exists("IsAllowRetry",$param) and $param["IsAllowRetry"] !== null) {
            $this->IsAllowRetry = $param["IsAllowRetry"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
